<?php

require_once 'resource/db.inc.php';
require_once 'resource/crud.inc.php';
require_once 'resource/http_functions.inc.php';

function opCreateUser(&$errores, &$exitos) {
    
    $dni = isset($_POST['dni']) ? filter_var($_POST['dni'], FILTER_SANITIZE_STRING) : '';
    $nombre = isset($_POST['nombre']) ? filter_var($_POST['nombre'], FILTER_SANITIZE_STRING) : '';
    $apellidos = isset($_POST['apellidos']) ? filter_var($_POST['apellidos'], FILTER_SANITIZE_STRING) : '';
    $email = isset($_POST['email']) ? filter_var($_POST['email'], FILTER_SANITIZE_EMAIL) : '';
    $password = isset($_POST['password']) ? filter_var($_POST['password'], FILTER_SANITIZE_STRING) : '';
    $password2 = isset($_POST['password2']) ? filter_var($_POST['password2'], FILTER_SANITIZE_STRING) : '';
    $dia = isset($_POST['dia']) ? filter_var($_POST['dia'], FILTER_SANITIZE_NUMBER_INT) : '';
    $mes = isset($_POST['mes']) ? filter_var($_POST['mes'], FILTER_SANITIZE_NUMBER_INT) : '';
    $anyo = isset($_POST['anyo']) ? filter_var($_POST['anyo'], FILTER_SANITIZE_NUMBER_INT) : '';
    $sexo = isset($_POST['sexo']) ? filter_var($_POST['sexo'], FILTER_SANITIZE_STRING) : '';

    if (empty($dni) || !$dni) {
        $errores[] = "No se ha proporcionado correctamente el DNI del usuario";
    }
    if (empty($nombre) || !$nombre) {
        $errores[] = "No se ha proporcionado correctamente el nombre del usuario";
    }
    if (empty($apellidos) || !$apellidos) {
        $errores[] = "No se ha proporcionado correctamente los apellidos del usuario";
    }
    if (empty($email) || !$email) {
        $errores[] = "No se ha proporcionado correctamente el email del usuario";
    }
    if (empty($password) || !$password) {
        $errores[] = "No se ha proporcionado correctamente la contrase&ntilde;a del usuario";
    }
    if (empty($password) || !$password) {
        $errores[] = "No se ha proporcionado correctamente la confirmacion de la contrase&ntilde;a del usuario";
    }
    if (!empty($password) && !empty($password2) && $password != $password2) {
        $errores[] = "La contrase&ntilde;a del usuario y su confirmacion no coinciden.";
    }
    if (empty($dia) || !$dia) {
        $errores[] = "No se ha proporcionado correctamente el dia de nacimiento del usuario";
    }
    if (empty($mes) || !$mes) {
        $errores[] = "No se ha proporcionado correctamente el mes de nacimiento del usuario";
    }
    if (empty($anyo) || !$anyo) {
        $errores[] = "No se ha proporcionado correctamente el a&ntilde;o de nacimiento del usuario";
    }
    if (empty($sexo) || !$sexo) {
        $errores[] = "No se ha proporcionado correctamente el sexo del usuario";
    }

    if (empty($errores)) {
        $fecha_nacimiento = $anyo.'-'.$mes.'-'.$dia;
        addUsuario($dni, $nombre, $apellidos, $password, null, null, $email, $fecha_nacimiento,2);
        $exitos[] = "Usuario creado satisfactoriamente";
    }
}

function opListUsers(&$nreg, $regsxpag, &$pagina) {

    $pagina = (isset($_GET['page']) && ctype_digit($_GET['page']) && $_GET['page'] > 0 ) ? $_GET['page'] : 1;
    $registro = ($pagina > 0) ? ($pagina - 1) * $regsxpag : 0;

    $nreg = getNumUsuarios();
    $usuarios = getUsuariosLimit($registro, $regsxpag);
    return $usuarios;
}

function opLogin(&$errores) {

    $usuario = (isset($_POST['usuario'])) ? filter_input(INPUT_POST, 'usuario', FILTER_SANITIZE_STRING) : '';
    $password = (isset($_POST['password'])) ? filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING) : '';

    if (!preg_match('/^[[:digit:]]{8}[[:alpha:]]$/', $usuario)) {
        $errores[] = "No ha introducido un DNI valido";
    }

    if (empty($password)) {
        $errores[] = 'No ha indicado correctamente la contrase&ntilde;a';
    }

    if (empty($errores)) {
        if (loggin($usuario, $password)) {
            $errores[] = 'aaa';
            session_start();
            $usuario = getUsuario($usuario);
            foreach ($usuario as $k => $v) {
                $_SESSION[$k] = $v;
            }
            $_SESSION['logged'] = 1;
            $gimnasios = getGimnasios($_SESSION['user_dni']);
            $_SESSION['gim_id'] = $gimnasios[0]['gim_id'];
            global $redirect;
            redirect($redirect, 5);
            die();
        } else {
            $errores[] = 'Credenciales no validos';
        }
    }
}

function opDeleteUser(&$errores, &$exitos) {
    
    $user_dni = isset($_GET['user_dni']) ? filter_var($_GET['user_dni'], FILTER_SANITIZE_STRING) : '';

    if (empty($user_dni) || !$user_dni) {
        $errores[] = "No se ha proporcionado correctamente el DNI del usuario";
    }
    if (empty($errores)) {
        deleteUsuario($user_dni);
        $exitos[] = "Usuario eliminado satisfactoriamente";
    }
}

function opModifyUser(&$errores, &$exitos) {
    
    $user_dni = isset($_GET['user_dni']) ? filter_var($_GET['user_dni'], FILTER_SANITIZE_STRING) : '';
    $nombre = isset($_POST['nombre']) ? filter_var($_POST['nombre'], FILTER_SANITIZE_STRING) : '';
    $apellidos = isset($_POST['apellidos']) ? filter_var($_POST['apellidos'], FILTER_SANITIZE_STRING) : '';
    $telefono = isset($_POST['telefono']) ? filter_var($_POST['telefono'], FILTER_SANITIZE_STRING) : '';
    $direccion = isset($_POST['direccion']) ? filter_var($_POST['direccion'], FILTER_SANITIZE_STRING) : '';
    $email = isset($_POST['email']) ? filter_var($_POST['email'], FILTER_SANITIZE_EMAIL) : '';

    if (empty($user_dni) || !$user_dni) {
        $errores[] = "No se ha proporcionado correctamente el DNI del usuario";
    }
    if (empty($nombre) || !$nombre) {
        $errores[] = "No se ha proporcionado correctamente el nombre del usuario";
    }
    if (empty($apellidos) || !$apellidos) {
        $errores[] = "No se ha proporcionado correctamente los apellidos del usuario";
    }
    if (empty($telefono) || !$telefono) {
        $errores[] = "No se ha proporcionado correctamente el telefono del usuario";
    }    
    if (empty($direccion) || !$direccion) {
        $errores[] = "No se ha proporcionado correctamente la direccion del usuario";
    }    
    if (empty($email) || !$email) {
        $errores[] = "No se ha proporcionado correctamente el email del usuario";
    }
    /*
    if (empty($password) || !$password) {
        $errores[] = "No se ha proporcionado correctamente la contrase&ntilde;a del usuario";
    }
    if (empty($password) || !$password) {
        $errores[] = "No se ha proporcionado correctamente la confirmacion de la contrase&ntilde;a del usuario";
    }
    if (!empty($password) && !empty($password2) && $password != $password2) {
        $errores[] = "La contrase&ntilde;a del usuario y su confirmacion no coinciden.";
    }
    if (empty($dia) || !$dia) {
        $errores[] = "No se ha proporcionado correctamente el dia de nacimiento del usuario";
    }
    if (empty($mes) || !$mes) {
        $errores[] = "No se ha proporcionado correctamente el mes de nacimiento del usuario";
    }
    if (empty($anyo) || !$anyo) {
        $errores[] = "No se ha proporcionado correctamente el a&ntilde;o de nacimiento del usuario";
    }
    if (empty($sexo) || !$sexo) {
        $errores[] = "No se ha proporcionado correctamente el sexo del usuario";
    }*/

    if (empty($errores)) {
        
        updateUsuario($user_dni, $nombre, $apellidos, $telefono, $direccion, $email);
        $exitos[] = "Usuario modificado satisfactoriamente";
    }
}
?>